﻿using System;
using Mono.Collections.Generic;

namespace Mono.Cecil
{
	// Token: 0x020000C0 RID: 192
	public abstract class PropertyReference : MemberReference
	{
		// Token: 0x17000227 RID: 551
		// (get) Token: 0x060007EC RID: 2028 RVA: 0x00023F28 File Offset: 0x00022128
		// (set) Token: 0x060007ED RID: 2029 RVA: 0x00004DFA File Offset: 0x00002FFA
		public TypeReference PropertyType
		{
			get
			{
				return this.property_type;
			}
			set
			{
				this.property_type = value;
			}
		}

		// Token: 0x17000228 RID: 552
		// (get) Token: 0x060007EE RID: 2030
		public abstract Collection<ParameterDefinition> Parameters { get; }

		// Token: 0x060007EF RID: 2031 RVA: 0x00004E04 File Offset: 0x00003004
		internal PropertyReference(string name, TypeReference propertyType) : base(name)
		{
			Mixin.CheckType(propertyType, Mixin.Argument.propertyType);
			this.property_type = propertyType;
		}

		// Token: 0x060007F0 RID: 2032 RVA: 0x00023F40 File Offset: 0x00022140
		protected override IMemberDefinition ResolveDefinition()
		{
			return this.Resolve();
		}

		// Token: 0x060007F1 RID: 2033
		public new abstract PropertyDefinition Resolve();

		// Token: 0x040002B6 RID: 694
		private TypeReference property_type;
	}
}
